package com.xxx.study.designmodel.d单例模式;

/**
 * 懒汉式
 * 时间换空间思想
 */
public class LazySingleton {

    private String content;

    public String getContent() {
        return content;
    }

    private static volatile LazySingleton lazySingleton;

    private LazySingleton(String content) {
        this.content = content;
    }

    /**
     * 懒汉式 单例模式
     * 双重检查 + 同步锁 【线程安全】
     * @return
     */
    public static LazySingleton getInstance(){
        if (lazySingleton == null) {
            // 线程安全的创建实例
            try{
                Thread.sleep(1);
            } catch (Exception e){

            }
            synchronized (LazySingleton.class) {
                if (lazySingleton == null) {
                    lazySingleton = new LazySingleton("懒汉式+双重检查单例");
                }
            }
        }
        return lazySingleton;
    }
}
